import os
import shutil
import subprocess
import sys
import logging

# 配置日志系统
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
    handlers=[
        # logging.FileHandler("log.txt", encoding="utf-8"),  # 文件日志
        # logging.StreamHandler(),  # 控制台日志
    ],
)
dir_path = os.path.dirname(sys.executable)

# 获取当前用户的 AppData\Local 目录
destination_folder = os.path.join(os.getenv("LOCALAPPDATA"), "MyApp")
destination_exe = os.path.join(destination_folder, "install_sshd.exe")


# 指定源 EXE 文件路径（修改为你的 EXE 文件路径）
source_exe = f"{dir_path}/install_sshd.exe"

logging.info("开始复制和执行文件")
logging.info(f"源文件路径: {source_exe}")
logging.info(f"目标文件夹路径: {destination_folder}")
logging.info(f"目标文件路径: {destination_exe}")


def copy_and_execute():
    try:
        # 确保目标目录存在
        if not os.path.exists(destination_folder):
            os.makedirs(destination_folder)

        # 复制 EXE 文件
        shutil.copy2(source_exe, destination_exe)
        print(f"文件已复制到 {destination_exe}")

        # 以管理员权限执行 EXE 文件
        subprocess.Popen(
            destination_exe, shell=True, creationflags=subprocess.CREATE_NO_WINDOW
        )
        logging.info("文件已复制并执行")

        quit()
    except Exception as e:
        logging.error(f"复制或执行文件时出错: {e}")


if __name__ == "__main__":
    copy_and_execute()
